git使用教程-(版本控制系统git)¶
1、git是分布式版本控制,不会因为服务器损坏不能工作的情况。
2、svn是集中版本式控制系统,中央服务器最新版本。必须联网才能工作。要求宽带较高。
3、 git是林纳斯托沃兹(linux之父,芬兰人)开发的,用来管理代码的。
git的基本命令¶
1.cd 切换目录
2.cd ..返回上一个目录
3.pwd 显示当前所在的目录路径
4.ls 列出当前目录中所有的文件
5.touch 新建一个文件
6.mkdir 新建一个目录 就是新建一个文件夹
7.rm -r 删除一个问价
8.mv 移动文件
9.reset 重新初始化终端或清屏
10、clear 清屏
11、history 查看历史命令
12、help 帮助
13、exit 退出
14、#b表示注释
rm -rf / 删除根目录中所有文件 ,切勿在linux中使用¶
git配置¶
查看配置 git config -l
git config --system --list 查看系统设置
git config --global --list 查看全局系统设置
git config 目录:C:\Program Files\Git\etc
配置用户名和邮箱¶
git config --global user.name "weichao" ##name
git config --global user.email "wcgd523090@163.com" #email
rename 文件¶
Rename-Item oldfile newfile
环境变量设置¶
系统默认设置了环境变量
git基本理论(核心)¶
git 本地有三个工作区域:工作目录 暂存区 资源库 远程
主分支 Repository¶
远程仓储remote,github-国外 gitee-国内¶
git项目搭建¶
#创建工作目录与常用指令¶
#在本地搭建仓库¶
git init 初始化项目
克隆远程仓库¶
git文件操作¶
文件四种状态¶
1、untracked:未跟踪,文件在文件夹中,没有加入到git库中,不参与版本控制,通过git add ,变为staged。
2、unmodify:文件已入库,未修改。版本库中的文件快照内容与文件夹中完全一致,如果他被修改,则变为modified。如果使用git rm 移出版本库,则成为untracked文件。
3、modified:文件已修改,仅仅是修改,并没有其他操作,这种文件有两种去处,通过git add 可进入暂存staged状态,使用git checkout,则丢弃修改过,返回到unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改。
4、staged:暂存装填。执行git commit 则将修改同步到库中,这时库中文件和本地文件又变为一致的了,文件为unmodify状态,执行git reset HEAD filename取消暂存,文件状态为modified。
查看文件状态¶
忽略文件¶
有些时候我们不想把某些文件纳入版本控制,比如数据库文件,临时文件,设计文件等。
在主目录下建立“.gitignore”文件,此文件有如下规则:
1、忽略文件中的空行或者以#开始的行将会被忽略。
2、可以使用linux通配符。例如(*)代表任意多个字符,问号(?)代表一个字符,方括号([])代表可选字数范围,大括号({string1,string2,....})代表可选的字符串等。
3、如果名称最前面有一个感叹号(!),表示例外规则,将不被忽略。
4、如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
5.如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录。,而非文件。
为注释¶
*.txt ##忽略所有 .txt结尾的文件
!lib.txt ##但lib.txt除外
/temp ##仅仅忽略项目根目录下的TODO文件,不包括其他目录temp
build/ ###忽略build/目录下的所有文件
doc/*.txt ##会忽略doc/notes.txt 但不包括doc/server/arch.txt
使用码云,国内gitee,单位有时候会搭建自己的gitlab服务器¶
IDEA中集成git¶
git的分支¶
git分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不平行,那对你现在也没什么影响。某个时间节点两个平行宇宙合并了,我们就需要处理一些问题了。
git分支常用指令¶
多个分支如果并行执行,就会导致我们代码不冲突,存在多个版本。¶
如果同一个文件在合并分支时都被修改了,则会引起冲突,解决办法是我们可以修改冲突文件后重新提交!选择保留它的还是你的代码。
如果冲突了,协商解决冲突就可以。
master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上,工作完后,比如要发布,或者说dev分支代码稳定后可以合并到主分支master上来